import Vue from 'vue'
import Vuex from 'vuex'

import count1 from './count1'
import count2 from './count2'

Vue.use(Vuex)

export default new Vuex.Store({
  // 定义数据
  state: {
    a: 1,
    b: 2,
    arr: [3, 4, 5]
  },
  // 获取数据
  getters: {
    total (state) {
      // 求和
      return state.arr.reduce((num1, num2) => num1 + num2)
    }
  },
  // 修改数据（同步函数）
  mutations: {
    change (state, value) {
      state.a += value
    }
  },
  // 修改数据（同步、异步函数）
  actions: {
    changeAction (context, value) {
      setTimeout(() => {
        context.commit('change', value)
      }, 3000)
    }
  },
  modules: {
    count1,
    count2
  }
})
